package core

import "fmt"

// Sender 定义了发送消息的接口。
type Sender interface {
	Send(msg Message) (*Response, error)
}

// Message 定义了通用消息的接口。
type Message interface {
	GetType() string
	GetContent() string
	// 如果需要，可以添加其他通用的消息方法，例如 SetContent, SetTitle
}

// Response 表示来自消息平台的通用响应。
type Response struct {
	Code    int    `json:"code"`
	Message string `json:"message"`
	// 如果需要，可以添加其他通用的响应字段
}

// 常见的错误类型
var (
	ErrInvalidConfig     = fmt.Errorf("配置无效")
	ErrNetworkFailure    = fmt.Errorf("网络故障")
	ErrSendMessageFailed = fmt.Errorf("发送消息失败")
)

// NewResponse 创建一个新的 Response 实例。
func NewResponse(code int, message string) *Response {
	return &Response{
		Code:    code,
		Message: message,
	}
}

// IsSuccess 检查响应是否表示成功。
func (r *Response) IsSuccess() bool {
	return r.Code == 0 // 假设 0 表示大多数平台成功
}
